import librosa
import librosa.display
import IPython.display as ipd
import numpy as np
import matplotlib.pyplot as plt
x , sr = librosa.load("Untitled Folder/catpurr.wav")
ipd.Audio(x , rate=sr)
print(x.shape)
print(sr)
(387230,) 22050
plt.figure(figsize=(14, 5))
librosa.display.waveplot(x, sr=sr)
<matplotlib.collections.PolyCollection at 0x7f925702fdf0>
FRAME_SIZE = 2048
HOP_SIZE = 512
S = librosa.stft(x, n_fft=FRAME_SIZE, hop_length=HOP_SIZE)
S.shape
(1025, 757)
type(S[0][0])
numpy.complex64
Y = np.abs(S)**2
Y.shape
(1025, 757)
type(Y[0][0])
numpy.float32
def plot_spectrogram(Y, sr, hop_length, y_axis="linear"):
plt.figure(figsize=(25,10))
librosa.display.specshow(Y, sr=sr, x_axis="time", y_axis=y_axis)
plt.colorbar(format="%+2.f")
plot_spectrogram(Y, sr, HOP_SIZE)
Y_log = librosa.power_to_db(Y)
plot_spectrogram(Y_log, sr, HOP_SIZE)
plot_spectrogram(Y_log, sr, HOP_SIZE, y_axis="log")
Y_log = librosa.power_to_db(Y, ref=np.max)
plot_spectrogram(Y_log, sr, HOP_SIZE)
plot_spectrogram(Y_log, sr, HOP_SIZE, y_axis="log")
filter_banks = librosa.filters.mel(n_fft=2048, sr=22050, n_mels=10)
filter_banks.shape
(10, 1025)
plt.figure(figsize=(25,10))
librosa.display.specshow(filter_banks, sr=sr, x_axis="linear")
plt.colorbar(format="%2.f")
plt.show()
mel_spectrogram = librosa.feature.melspectrogram(x, sr=sr, n_fft=2048, hop_length=512, n_mels=10)
mel_spectrogram.shape
(10, 757)
log_mel_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max)
plt.figure(figsize=(25,10))
librosa.display.specshow(log_mel_spectrogram, x_axis="time", y_axis="mel", sr=sr)
plt.colorbar(format="%2.f")
plt.show()
mel_spectrogram = librosa.feature.melspectrogram(x, sr=sr, n_fft=2048, hop_length=512, n_mels=90)
log_mel_spectrogram = librosa.power_to_db(mel_spectrogram, ref=np.max)
plt.figure(figsize=(25,10))
librosa.display.specshow(log_mel_spectrogram, x_axis="time", y_axis="mel", sr=sr)
plt.colorbar(format="%2.f")
plt.show()